package com.xpffly.design.factory.abs.factory;

import com.xpffly.design.factory.abs.service.AbstractProductA;
import com.xpffly.design.factory.abs.service.AbstractProductB;
import com.xpffly.design.factory.abs.service.AbstractProductN;
import com.xpffly.design.factory.abs.service.impl.ProductA1;
import com.xpffly.design.factory.abs.service.impl.ProductB1;
import com.xpffly.design.factory.abs.service.impl.ProductN1;

/**
 * @Author: xpengfei
 * @Date: 2021/3/27 23:40
 * @Description：生产等级 1 的工厂实现类 ; 有多少个产品等级，就应该有多少个实现工厂类；在每个实现工厂中，实现不同产品族的生产任务
 */
public class Creator1 extends AbstractCreator {
    /**
     * 只生产产品等级为 1 的A类产品
     *
     * @return
     */
    @Override
    public AbstractProductA createProductA() {
        return new ProductA1();
    }

    /**
     * 只生产产品等级为 1 的B类产品
     *
     * @return
     */
    @Override
    public AbstractProductB createProductB() {
        return new ProductB1();
    }

    /**
     * 只生产产品等级为 1 的N类产品
     *
     * @return
     */
    @Override
    public AbstractProductN createProductN() {
        return new ProductN1();
    }
}
